package com.smart.order.service.impl;

import com.smart.order.mapper.OrderMapper;
import com.smart.order.service.OrderService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * 悲观
 * <p>
 * 幂等性 执行多次跟执行一次的影响一致
 * 1. 利用数据唯一约束
 * (增加)
 * 2. Redis  防重复提交 (订单的防重复提交)
 * 3. 去重表
 * 4  状态机
 * 订单
 * 1. 必须是唯一
 * 2. 安全性
 * 3. 可读性
 * <p>
 * 程序生成的  多个线程生产订单号是否相同
 *
 * @author Administrator
 */
@Service
public class OrderServiceImpl implements OrderService {
    @Resource
    private OrderMapper orderMapper;

    /**
     * 核心业务
     * @param orderSn
     * @return
     */
    @Override
    public int cannelOrder(String orderSn) {
        return orderMapper.updateOrderStatusBySn(orderSn);
    }
}
